---
title: Reset argument slots
summary: Returns all 20 argument slots to the empty state so a reused instance cannot leak arguments from a previous submission.
status: draft
owner: SAIF Documentation
last_reviewed: 2026-08-21
library: SAIF.Services.Appworx
reference_type: embedded
operation_id: OP-03
trigger: Called by the constructor, by the shared overload, or explicitly by a caller reusing an instance
---

# Reset argument slots

Resets every one of the 20 positional argument fields to the `clsSmartString` "empty" state, ensuring a reused `clsRequestAppworxJob` instance cannot carry arguments over from a previous submission.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-03 |
| **Trigger** | Called by the constructor, by [Submit an Appworx batch job (shared overload)](submit-batch-job-shared.md) step 3, or explicitly by a caller reusing an instance |
| **Inputs** | None; mutates instance state only |
| **Outputs** | All 20 `clsSmartString` argument fields (`m_Arg1`..`m_Arg20`) set to empty |
| **Primary components** | `clsRequestAppworxJob.InitArgs` |
| **Entry point** | `SAIF.Services.Appworx/clsRequestAppworxJob.vb` |

## Steps

1. Call `SetEmpty()` on each of the 20 `clsSmartString` fields (`m_Arg1`..`m_Arg20`), returning every slot to the "empty" state that suppresses it during parameter construction ([BR-007](../business-rules.md#br-007-argument-slots-never-carry-over-between-submissions)).

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start([InitArgs called]) --> S1[SetEmpty on<br>m_Arg1..m_Arg20]
	S1 --> EndOk([All 20 slots empty])
```

## Failure and edge-case behavior
- None; the operation has no branches and cannot fail.

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)

## Sources
- `SAIF.Services.Appworx/clsRequestAppworxJob.vb`
